NexusPi Git Node
docs/index.html copilot/add-rtnode-configuration-options (9529fa8a) Text, 12.77 KB
Tff7b72<!DOCTYPE html>
Tb4b4b4<Tff7b72html Te6edf3langTff7b72=Ta5d6ff"en"Tb4b4b4>
Tb4b4b4<Tff7b72headTb4b4b4>
Tb4b4b4<Tff7b72meta Te6edf3charsetTff7b72=Ta5d6ff"UTF-8"Tb4b4b4>
Tb4b4b4<Tff7b72meta Te6edf3nameTff7b72=Ta5d6ff"viewport" Te6edf3contentTff7b72=Ta5d6ff"width=device-width, initial-scale=1.0"Tb4b4b4>
Tb4b4b4<Tff7b72titleTb4b4b4>RTNode Firmware FlasherTb4b4b4<Tb4b4b4/Tff7b72titleTb4b4b4>
Tb4b4b4<Tff7b72script Te6edf3typeTff7b72=Ta5d6ff"module" Te6edf3srcTff7b72=Ta5d6ff"https://unpkg.com/esp-web-tools@10/dist/web/install-button.js"Tb4b4b4>Tb4b4b4<Tb4b4b4/Tff7b72scriptTb4b4b4>
Tb4b4b4<Tff7b72styleTb4b4b4>
Tff7b72*Tff7b72, Tff7b72*Tb4b4b4::Tf0883ebeforeTff7b72, Tff7b72*Tb4b4b4::Tf0883eafter Tb4b4b4{ Tff7b72box-sizingTb4b4b4: Tff7b72border-boxTb4b4b4; Tff7b72marginTb4b4b4: T79c0ff0Tb4b4b4; Tff7b72paddingTb4b4b4: T79c0ff0Tb4b4b4; Tb4b4b4}
Tb4b4b4:Tf0883eroot Tb4b4b4{
Te6edf3--bgTb4b4b4: T79c0ff#0f1117Tb4b4b4;
Te6edf3--surfaceTb4b4b4: T79c0ff#1a1d27Tb4b4b4;
Te6edf3--borderTb4b4b4: T79c0ff#2a2d3aTb4b4b4;
Te6edf3--accentTb4b4b4: T79c0ff#5b8af5Tb4b4b4;
Te6edf3--accent-hiTb4b4b4: T79c0ff#7ba3ffTb4b4b4;
Te6edf3--successTb4b4b4: T79c0ff#4caf76Tb4b4b4;
Te6edf3--warnTb4b4b4: T79c0ff#e0a742Tb4b4b4;
Te6edf3--textTb4b4b4: T79c0ff#e2e4efTb4b4b4;
Te6edf3--mutedTb4b4b4: T79c0ff#8a8fa8Tb4b4b4;
Te6edf3--radiusTb4b4b4: T79c0ff10Tffa657pxTb4b4b4;
Tb4b4b4}
Tff7b72body Tb4b4b4{
Tff7b72font-familyTb4b4b4: Tff7b72-Te6edf3apple-systemTb4b4b4, Te6edf3BlinkMacSystemFontTb4b4b4, Ta5d6ff"Segoe UI"Tb4b4b4, Tff7b72sans-serifTb4b4b4;
Tff7b72backgroundTb4b4b4: Td2a8ffvarTb4b4b4(Te6edf3--bgTb4b4b4)Tb4b4b4;
Tff7b72colorTb4b4b4: Td2a8ffvarTb4b4b4(Te6edf3--textTb4b4b4)Tb4b4b4;
Tff7b72min-heightTb4b4b4: T79c0ff100Tffa657vhTb4b4b4;
Tff7b72paddingTb4b4b4: T79c0ff2Tffa657rem T79c0ff1Tffa657rem T79c0ff4Tffa657remTb4b4b4;
Tff7b72line-heightTb4b4b4: T79c0ff1.6Tb4b4b4;
Tb4b4b4}
Tff7b72main Tb4b4b4{ Tff7b72max-widthTb4b4b4: T79c0ff680Tffa657pxTb4b4b4; Tff7b72marginTb4b4b4: T79c0ff0 Tff7b72autoTb4b4b4; Tb4b4b4}
T8b949e/* ── Header ─────────────────────────────────────────── */
Tff7b72header Tb4b4b4{ Tff7b72text-alignTb4b4b4: Tff7b72centerTb4b4b4; Tff7b72margin-bottomTb4b4b4: T79c0ff3Tffa657remTb4b4b4; Tb4b4b4}
Tff7b72header Tff7b72h1 Tb4b4b4{
Tff7b72font-sizeTb4b4b4: T79c0ff2Tffa657remTb4b4b4;
Tff7b72font-weightTb4b4b4: T79c0ff700Tb4b4b4;
Tff7b72letter-spacingTb4b4b4: T79c0ff-0.5Tffa657pxTb4b4b4;
Tff7b72colorTb4b4b4: Td2a8ffvarTb4b4b4(Te6edf3--textTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72header Tff7b72h1 Tff7b72span Tb4b4b4{ Tff7b72colorTb4b4b4: Td2a8ffvarTb4b4b4(Te6edf3--accentTb4b4b4)Tb4b4b4; Tb4b4b4}
Tff7b72header Tff7b72p Tb4b4b4{ Tff7b72colorTb4b4b4: Td2a8ffvarTb4b4b4(Te6edf3--mutedTb4b4b4)Tb4b4b4; Tff7b72margin-topTb4b4b4: T79c0ff0.4Tffa657remTb4b4b4; Tff7b72font-sizeTb4b4b4: T79c0ff0.95Tffa657remTb4b4b4; Tb4b4b4}
T8b949e/* ── Steps ──────────────────────────────────────────── */
Tb4b4b4.T56d364step Tb4b4b4{ Tff7b72margin-bottomTb4b4b4: T79c0ff2.2Tffa657remTb4b4b4; Tb4b4b4}
Tb4b4b4.T56d364step-label Tb4b4b4{
Tff7b72displayTb4b4b4: Tff7b72flexTb4b4b4;
Tff7b72align-itemsTb4b4b4: Tff7b72centerTb4b4b4;
Tff7b72gapTb4b4b4: T79c0ff0.6Tffa657remTb4b4b4;
Tff7b72font-sizeTb4b4b4: T79c0ff0.78Tffa657remTb4b4b4;
Tff7b72font-weightTb4b4b4: T79c0ff700Tb4b4b4;
Tff7b72letter-spacingTb4b4b4: T79c0ff1.5Tffa657pxTb4b4b4;
Tff7b72text-transformTb4b4b4: Tff7b72uppercaseTb4b4b4;
Tff7b72colorTb4b4b4: Td2a8ffvarTb4b4b4(Te6edf3--accentTb4b4b4)Tb4b4b4;
Tff7b72margin-bottomTb4b4b4: T79c0ff0.8Tffa657remTb4b4b4;
Tb4b4b4}
Tb4b4b4.T56d364step-labelTb4b4b4::Tf0883eafter Tb4b4b4{
Tff7b72contentTb4b4b4: Ta5d6ff''Tb4b4b4;
Tff7b72flexTb4b4b4: T79c0ff1Tb4b4b4;
Tff7b72heightTb4b4b4: T79c0ff1Tffa657pxTb4b4b4;
Tff7b72backgroundTb4b4b4: Td2a8ffvarTb4b4b4(Te6edf3--borderTb4b4b4)Tb4b4b4;
Tb4b4b4}
T8b949e/* ── Board cards ────────────────────────────────────── */
Tb4b4b4.T56d364board-grid Tb4b4b4{
Tff7b72displayTb4b4b4: Tff7b72gridTb4b4b4;
Tff7b72grid-template-columnsTb4b4b4: Td2a8ffrepeatTb4b4b4(T79c0ff3Tb4b4b4, T79c0ff1Te6edf3frTb4b4b4)Tb4b4b4;
Tff7b72gapTb4b4b4: T79c0ff0.75Tffa657remTb4b4b4;
Tb4b4b4}
Tb4b4b4@Tff7b72media Tff7b72(Tff7b72max-widthTff7b72: Tff7b72480pxTff7b72) Tb4b4b4{
Tb4b4b4.T56d364board-grid Tb4b4b4{ Tff7b72grid-template-columnsTb4b4b4: T79c0ff1Te6edf3frTb4b4b4; Tb4b4b4}
Tb4b4b4}
Tb4b4b4.T56d364board-btn Tb4b4b4{
Tff7b72backgroundTb4b4b4: Td2a8ffvarTb4b4b4(Te6edf3--surfaceTb4b4b4)Tb4b4b4;
Tff7b72borderTb4b4b4: T79c0ff2Tffa657px Tff7b72solid Td2a8ffvarTb4b4b4(Te6edf3--borderTb4b4b4)Tb4b4b4;
Tff7b72border-radiusTb4b4b4: Td2a8ffvarTb4b4b4(Te6edf3--radiusTb4b4b4)Tb4b4b4;
Tff7b72paddingTb4b4b4: T79c0ff0.9Tffa657rem T79c0ff0.5Tffa657remTb4b4b4;
Tff7b72cursorTb4b4b4: Tff7b72pointerTb4b4b4;
Tff7b72colorTb4b4b4: Td2a8ffvarTb4b4b4(Te6edf3--textTb4b4b4)Tb4b4b4;
Tff7b72text-alignTb4b4b4: Tff7b72centerTb4b4b4;
Tff7b72transitionTb4b4b4: Tff7b72border-color T79c0ff0.15Tffa657sTb4b4b4, Tff7b72background T79c0ff0.15Tffa657sTb4b4b4;
Tb4b4b4}
Tb4b4b4.T56d364board-btnTb4b4b4:Tf0883ehover Tb4b4b4{ Tff7b72border-colorTb4b4b4: Td2a8ffvarTb4b4b4(Te6edf3--accentTb4b4b4)Tb4b4b4; Tb4b4b4}
Tb4b4b4.T56d364board-btnTb4b4b4.T56d364active Tb4b4b4{
Tff7b72border-colorTb4b4b4: Td2a8ffvarTb4b4b4(Te6edf3--accentTb4b4b4)Tb4b4b4;
Tff7b72backgroundTb4b4b4: T79c0ff#1c2340Tb4b4b4;
Tb4b4b4}
Tb4b4b4.T56d364board-btn Tb4b4b4.T56d364board-name Tb4b4b4{
Tff7b72displayTb4b4b4: Tff7b72blockTb4b4b4;
Tff7b72font-weightTb4b4b4: T79c0ff600Tb4b4b4;
Tff7b72font-sizeTb4b4b4: T79c0ff0.95Tffa657remTb4b4b4;
Tb4b4b4}
Tb4b4b4.T56d364board-btn Tb4b4b4.T56d364board-chip Tb4b4b4{
Tff7b72displayTb4b4b4: Tff7b72blockTb4b4b4;
Tff7b72font-sizeTb4b4b4: T79c0ff0.75Tffa657remTb4b4b4;
Tff7b72colorTb4b4b4: Td2a8ffvarTb4b4b4(Te6edf3--mutedTb4b4b4)Tb4b4b4;
Tff7b72margin-topTb4b4b4: T79c0ff0.2Tffa657remTb4b4b4;
Tb4b4b4}
Tb4b4b4.T56d364board-btn Tb4b4b4.T56d364board-tag Tb4b4b4{
Tff7b72displayTb4b4b4: Tff7b72inline-blockTb4b4b4;
Tff7b72margin-topTb4b4b4: T79c0ff0.5Tffa657remTb4b4b4;
Tff7b72font-sizeTb4b4b4: T79c0ff0.7Tffa657remTb4b4b4;
Tff7b72font-weightTb4b4b4: T79c0ff700Tb4b4b4;
Tff7b72letter-spacingTb4b4b4: T79c0ff0.5Tffa657pxTb4b4b4;
Tff7b72colorTb4b4b4: Td2a8ffvarTb4b4b4(Te6edf3--accentTb4b4b4)Tb4b4b4;
Tff7b72backgroundTb4b4b4: Tffa657rgbaTb4b4b4(T79c0ff91Tb4b4b4, T79c0ff138Tb4b4b4, T79c0ff245Tb4b4b4, T79c0ff0.12Tb4b4b4)Tb4b4b4;
Tff7b72border-radiusTb4b4b4: T79c0ff4Tffa657pxTb4b4b4;
Tff7b72paddingTb4b4b4: T79c0ff1Tffa657px T79c0ff6Tffa657pxTb4b4b4;
Tb4b4b4}
Tb4b4b4.T56d364board-btnTb4b4b4.T56d364active Tb4b4b4.T56d364board-tag Tb4b4b4{
Tff7b72backgroundTb4b4b4: Tffa657rgbaTb4b4b4(T79c0ff91Tb4b4b4, T79c0ff138Tb4b4b4, T79c0ff245Tb4b4b4, T79c0ff0.22Tb4b4b4)Tb4b4b4;
Tb4b4b4}
T8b949e/* ── Mode toggle ────────────────────────────────────── */
Tb4b4b4.T56d364mode-toggle Tb4b4b4{
Tff7b72displayTb4b4b4: Tff7b72flexTb4b4b4;
Tff7b72gapTb4b4b4: T79c0ff0Tb4b4b4;
Tff7b72backgroundTb4b4b4: Td2a8ffvarTb4b4b4(Te6edf3--surfaceTb4b4b4)Tb4b4b4;
Tff7b72borderTb4b4b4: T79c0ff1Tffa657px Tff7b72solid Td2a8ffvarTb4b4b4(Te6edf3--borderTb4b4b4)Tb4b4b4;
Tff7b72border-radiusTb4b4b4: Td2a8ffvarTb4b4b4(Te6edf3--radiusTb4b4b4)Tb4b4b4;
Tff7b72overflowTb4b4b4: Tff7b72hiddenTb4b4b4;
Tff7b72margin-bottomTb4b4b4: T79c0ff1.1Tffa657remTb4b4b4;
Tff7b72widthTb4b4b4: T79c0ff100Tffa657%Tb4b4b4;
Tb4b4b4}
Tb4b4b4.T56d364mode-btn Tb4b4b4{
Tff7b72flexTb4b4b4: T79c0ff1Tb4b4b4;
Tff7b72backgroundTb4b4b4: Tff7b72noneTb4b4b4;
Tff7b72borderTb4b4b4: Tff7b72noneTb4b4b4;
Tff7b72colorTb4b4b4: Td2a8ffvarTb4b4b4(Te6edf3--mutedTb4b4b4)Tb4b4b4;
Tff7b72paddingTb4b4b4: T79c0ff0.6Tffa657rem T79c0ff0.5Tffa657remTb4b4b4;
Tff7b72font-sizeTb4b4b4: T79c0ff0.85Tffa657remTb4b4b4;
Tff7b72font-weightTb4b4b4: T79c0ff600Tb4b4b4;
Tff7b72cursorTb4b4b4: Tff7b72pointerTb4b4b4;
Tff7b72transitionTb4b4b4: Tff7b72background T79c0ff0.15Tffa657sTb4b4b4, Tff7b72color T79c0ff0.15Tffa657sTb4b4b4;
Tff7b72text-alignTb4b4b4: Tff7b72centerTb4b4b4;
Tff7b72line-heightTb4b4b4: T79c0ff1.3Tb4b4b4;
Tb4b4b4}
Tb4b4b4.T56d364mode-btnTb4b4b4:Tf0883efirst-child Tb4b4b4{ Tff7b72border-rightTb4b4b4: T79c0ff1Tffa657px Tff7b72solid Td2a8ffvarTb4b4b4(Te6edf3--borderTb4b4b4)Tb4b4b4; Tb4b4b4}
Tb4b4b4.T56d364mode-btnTb4b4b4.T56d364active Tb4b4b4{
Tff7b72backgroundTb4b4b4: T79c0ff#1c2340Tb4b4b4;
Tff7b72colorTb4b4b4: Td2a8ffvarTb4b4b4(Te6edf3--textTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4.T56d364mode-btn Tb4b4b4.T56d364mode-sub Tb4b4b4{
Tff7b72displayTb4b4b4: Tff7b72blockTb4b4b4;
Tff7b72font-sizeTb4b4b4: T79c0ff0.72Tffa657remTb4b4b4;
Tff7b72font-weightTb4b4b4: T79c0ff400Tb4b4b4;
Tff7b72colorTb4b4b4: Td2a8ffvarTb4b4b4(Te6edf3--mutedTb4b4b4)Tb4b4b4;
Tff7b72margin-topTb4b4b4: T79c0ff1Tffa657pxTb4b4b4;
Tb4b4b4}
Tb4b4b4.T56d364mode-btnTb4b4b4.T56d364active Tb4b4b4.T56d364mode-sub Tb4b4b4{ Tff7b72colorTb4b4b4: Td2a8ffvarTb4b4b4(Te6edf3--mutedTb4b4b4)Tb4b4b4; Tb4b4b4}
T8b949e/* ── Flash section ──────────────────────────────────── */
Tb4b4b4.T56d364flash-box Tb4b4b4{
Tff7b72backgroundTb4b4b4: Td2a8ffvarTb4b4b4(Te6edf3--surfaceTb4b4b4)Tb4b4b4;
Tff7b72borderTb4b4b4: T79c0ff1Tffa657px Tff7b72solid Td2a8ffvarTb4b4b4(Te6edf3--borderTb4b4b4)Tb4b4b4;
Tff7b72border-radiusTb4b4b4: Td2a8ffvarTb4b4b4(Te6edf3--radiusTb4b4b4)Tb4b4b4;
Tff7b72paddingTb4b4b4: T79c0ff1.4Tffa657rem T79c0ff1.6Tffa657remTb4b4b4;
Tb4b4b4}
Tb4b4b4.T56d364flash-box Tff7b72p Tb4b4b4{ Tff7b72font-sizeTb4b4b4: T79c0ff0.9Tffa657remTb4b4b4; Tff7b72colorTb4b4b4: Td2a8ffvarTb4b4b4(Te6edf3--mutedTb4b4b4)Tb4b4b4; Tff7b72margin-bottomTb4b4b4: T79c0ff1.1Tffa657remTb4b4b4; Tb4b4b4}
Tff7b72esp-web-install-button Tb4b4b4{
Tff7b72displayTb4b4b4: Tff7b72blockTb4b4b4;
Tb4b4b4}
Tff7b72esp-web-install-buttonTb4b4b4::Tf0883epartTff7b72(Tff7b72buttonTff7b72) Tb4b4b4{
Tff7b72displayTb4b4b4: Tff7b72inline-flexTb4b4b4;
Tff7b72align-itemsTb4b4b4: Tff7b72centerTb4b4b4;
Tff7b72gapTb4b4b4: T79c0ff0.5Tffa657remTb4b4b4;
Tff7b72backgroundTb4b4b4: Td2a8ffvarTb4b4b4(Te6edf3--accentTb4b4b4)Tb4b4b4;
Tff7b72colorTb4b4b4: T79c0ff#fffTb4b4b4;
Tff7b72borderTb4b4b4: Tff7b72noneTb4b4b4;
Tff7b72border-radiusTb4b4b4: T79c0ff8Tffa657pxTb4b4b4;
Tff7b72paddingTb4b4b4: T79c0ff0.7Tffa657rem T79c0ff1.6Tffa657remTb4b4b4;
Tff7b72font-sizeTb4b4b4: T79c0ff1Tffa657remTb4b4b4;
Tff7b72font-weightTb4b4b4: T79c0ff600Tb4b4b4;
Tff7b72cursorTb4b4b4: Tff7b72pointerTb4b4b4;
Tff7b72transitionTb4b4b4: Tff7b72background T79c0ff0.15Tffa657sTb4b4b4;
Tb4b4b4}
Tff7b72esp-web-install-buttonTb4b4b4::Tf0883epartTff7b72(Tff7b72buttonTff7b72)Tb4b4b4:Tf0883ehover Tb4b4b4{
Tff7b72backgroundTb4b4b4: Td2a8ffvarTb4b4b4(Te6edf3--accent-hiTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4.T56d364selected-board Tb4b4b4{
Tff7b72font-sizeTb4b4b4: T79c0ff0.82Tffa657remTb4b4b4;
Tff7b72colorTb4b4b4: Td2a8ffvarTb4b4b4(Te6edf3--mutedTb4b4b4)Tb4b4b4;
Tff7b72margin-topTb4b4b4: T79c0ff0.9Tffa657remTb4b4b4;
Tb4b4b4}
Tb4b4b4.T56d364selected-board Tff7b72span Tb4b4b4{ Tff7b72colorTb4b4b4: Td2a8ffvarTb4b4b4(Te6edf3--textTb4b4b4)Tb4b4b4; Tff7b72font-weightTb4b4b4: T79c0ff600Tb4b4b4; Tb4b4b4}
T8b949e/* ── Requirements ───────────────────────────────────── */
Tb4b4b4.T56d364req-list Tb4b4b4{
Tff7b72list-styleTb4b4b4: Tff7b72noneTb4b4b4;
Tff7b72displayTb4b4b4: Tff7b72flexTb4b4b4;
Tff7b72flex-directionTb4b4b4: Tff7b72columnTb4b4b4;
Tff7b72gapTb4b4b4: T79c0ff0.5Tffa657remTb4b4b4;
Tb4b4b4}
Tb4b4b4.T56d364req-list Tff7b72li Tb4b4b4{
Tff7b72displayTb4b4b4: Tff7b72flexTb4b4b4;
Tff7b72align-itemsTb4b4b4: Tff7b72flex-startTb4b4b4;
Tff7b72gapTb4b4b4: T79c0ff0.6Tffa657remTb4b4b4;
Tff7b72font-sizeTb4b4b4: T79c0ff0.9Tffa657remTb4b4b4;
Tb4b4b4}
Tb4b4b4.T56d364req-list Tff7b72li Tb4b4b4.T56d364icon Tb4b4b4{ Tff7b72flex-shrinkTb4b4b4: T79c0ff0Tb4b4b4; Tb4b4b4}
Tb4b4b4.T56d364req-list Tff7b72li Tb4b4b4.T56d364ok Tb4b4b4{ Tff7b72colorTb4b4b4: Td2a8ffvarTb4b4b4(Te6edf3--successTb4b4b4)Tb4b4b4; Tb4b4b4}
Tb4b4b4.T56d364req-list Tff7b72li Tb4b4b4.T56d364warn Tb4b4b4{ Tff7b72colorTb4b4b4: Td2a8ffvarTb4b4b4(Te6edf3--warnTb4b4b4)Tb4b4b4; Tb4b4b4}
T8b949e/* ── Flash size note ────────────────────────────────── */
Tff7b72details Tb4b4b4{
Tff7b72backgroundTb4b4b4: Td2a8ffvarTb4b4b4(Te6edf3--surfaceTb4b4b4)Tb4b4b4;
Tff7b72borderTb4b4b4: T79c0ff1Tffa657px Tff7b72solid Td2a8ffvarTb4b4b4(Te6edf3--borderTb4b4b4)Tb4b4b4;
Tff7b72border-radiusTb4b4b4: Td2a8ffvarTb4b4b4(Te6edf3--radiusTb4b4b4)Tb4b4b4;
Tff7b72paddingTb4b4b4: T79c0ff0.8Tffa657rem T79c0ff1.1Tffa657remTb4b4b4;
Tff7b72font-sizeTb4b4b4: T79c0ff0.88Tffa657remTb4b4b4;
Tb4b4b4}
Tff7b72summary Tb4b4b4{
Tff7b72cursorTb4b4b4: Tff7b72pointerTb4b4b4;
Tff7b72font-weightTb4b4b4: T79c0ff600Tb4b4b4;
Tff7b72colorTb4b4b4: Td2a8ffvarTb4b4b4(Te6edf3--mutedTb4b4b4)Tb4b4b4;
Tff7b72list-styleTb4b4b4: Tff7b72noneTb4b4b4;
Tff7b72user-selectTb4b4b4: Tff7b72noneTb4b4b4;
Tb4b4b4}
Tff7b72summaryTb4b4b4::Tf0883e-webkit-details-marker Tb4b4b4{ Tff7b72displayTb4b4b4: Tff7b72noneTb4b4b4; Tb4b4b4}
Tff7b72summaryTb4b4b4::Tf0883ebefore Tb4b4b4{ Tff7b72contentTb4b4b4: Ta5d6ff"▶ "Tb4b4b4; Tff7b72font-sizeTb4b4b4: T79c0ff0.7Tffa657emTb4b4b4; Tb4b4b4}
Tff7b72detailsTff7b72[Tff7b72openTff7b72] Tff7b72summaryTb4b4b4::Tf0883ebefore Tb4b4b4{ Tff7b72contentTb4b4b4: Ta5d6ff"▼ "Tb4b4b4; Tb4b4b4}
Tff7b72details Tff7b72p Tb4b4b4{ Tff7b72margin-topTb4b4b4: T79c0ff0.7Tffa657remTb4b4b4; Tff7b72colorTb4b4b4: Td2a8ffvarTb4b4b4(Te6edf3--mutedTb4b4b4)Tb4b4b4; Tff7b72line-heightTb4b4b4: T79c0ff1.6Tb4b4b4; Tb4b4b4}
Tff7b72details Tff7b72code Tb4b4b4{
Tff7b72backgroundTb4b4b4: Tffa657rgbaTb4b4b4(T79c0ff255Tb4b4b4,T79c0ff255Tb4b4b4,T79c0ff255Tb4b4b4,T79c0ff0.07Tb4b4b4)Tb4b4b4;
Tff7b72paddingTb4b4b4: T79c0ff1Tffa657px T79c0ff5Tffa657pxTb4b4b4;
Tff7b72border-radiusTb4b4b4: T79c0ff4Tffa657pxTb4b4b4;
Tff7b72font-familyTb4b4b4: Te6edf3ui-monospaceTb4b4b4, Tff7b72monospaceTb4b4b4;
Tff7b72font-sizeTb4b4b4: T79c0ff0.9Tffa657emTb4b4b4;
Tb4b4b4}
T8b949e/* ── Footer ─────────────────────────────────────────── */
Tff7b72footer Tb4b4b4{
Tff7b72text-alignTb4b4b4: Tff7b72centerTb4b4b4;
Tff7b72margin-topTb4b4b4: T79c0ff3Tffa657remTb4b4b4;
Tff7b72font-sizeTb4b4b4: T79c0ff0.8Tffa657remTb4b4b4;
Tff7b72colorTb4b4b4: Td2a8ffvarTb4b4b4(Te6edf3--mutedTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72footer Tff7b72a Tb4b4b4{ Tff7b72colorTb4b4b4: Td2a8ffvarTb4b4b4(Te6edf3--accentTb4b4b4)Tb4b4b4; Tff7b72text-decorationTb4b4b4: Tff7b72noneTb4b4b4; Tb4b4b4}
Tff7b72footer Tff7b72aTb4b4b4:Tf0883ehover Tb4b4b4{ Tff7b72text-decorationTb4b4b4: Tff7b72underlineTb4b4b4; Tb4b4b4}
Tb4b4b4<Tb4b4b4/Tff7b72styleTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72headTb4b4b4>
Tb4b4b4<Tff7b72bodyTb4b4b4>
Tb4b4b4<Tff7b72mainTb4b4b4>
Tb4b4b4<Tff7b72headerTb4b4b4>
Tb4b4b4<Tff7b72h1Tb4b4b4>Tb4b4b4<Tff7b72spanTb4b4b4>RTTb4b4b4<Tb4b4b4/Tff7b72spanTb4b4b4>Node Firmware FlasherTb4b4b4<Tb4b4b4/Tff7b72h1Tb4b4b4>
Tb4b4b4<Tff7b72pTb4b4b4>Flash RTNode firmware directly from your browser Te6edf3— no Python or tools required.Tb4b4b4<Tb4b4b4/Tff7b72pTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72headerTb4b4b4>
T8b949e<!-- Step 1: Board selection -->
Tb4b4b4<Tff7b72section Te6edf3classTff7b72=Ta5d6ff"step"Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"step-label"Tb4b4b4>Step 1 Te6edf3— Select your boardTb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"board-grid"Tb4b4b4>
Tb4b4b4<Tff7b72button Te6edf3classTff7b72=Ta5d6ff"board-btn active"
Te6edf3data-manifestTff7b72=Ta5d6ff"manifest-v3.json"
Te6edf3data-nameTff7b72=Ta5d6ff"Heltec V3"Tb4b4b4>
Tb4b4b4<Tff7b72span Te6edf3classTff7b72=Ta5d6ff"board-name"Tb4b4b4>Heltec V3Tb4b4b4<Tb4b4b4/Tff7b72spanTb4b4b4>
Tb4b4b4<Tff7b72span Te6edf3classTff7b72=Ta5d6ff"board-chip"Tb4b4b4>ESP32-S3 Te6edf3· 8 MBTb4b4b4<Tb4b4b4/Tff7b72spanTb4b4b4>
Tb4b4b4<Tff7b72span Te6edf3classTff7b72=Ta5d6ff"board-tag"Tb4b4b4>DIOTb4b4b4<Tb4b4b4/Tff7b72spanTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72buttonTb4b4b4>
Tb4b4b4<Tff7b72button Te6edf3classTff7b72=Ta5d6ff"board-btn"
Te6edf3data-manifestTff7b72=Ta5d6ff"manifest-v4-16mb.json"
Te6edf3data-nameTff7b72=Ta5d6ff"Heltec V4"Tb4b4b4>
Tb4b4b4<Tff7b72span Te6edf3classTff7b72=Ta5d6ff"board-name"Tb4b4b4>Heltec V4Tb4b4b4<Tb4b4b4/Tff7b72spanTb4b4b4>
Tb4b4b4<Tff7b72span Te6edf3classTff7b72=Ta5d6ff"board-chip"Tb4b4b4>ESP32-S3 Te6edf3· PSRAMTb4b4b4<Tb4b4b4/Tff7b72spanTb4b4b4>
Tb4b4b4<Tff7b72span Te6edf3classTff7b72=Ta5d6ff"board-tag"Tb4b4b4>QIOTb4b4b4<Tb4b4b4/Tff7b72spanTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72buttonTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72sectionTb4b4b4>
T8b949e<!-- Step 2: Mode + Flash -->
Tb4b4b4<Tff7b72section Te6edf3classTff7b72=Ta5d6ff"step"Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"step-label"Tb4b4b4>Step 2 Te6edf3— Connect Te6edf3& installTb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flash-box"Tb4b4b4>
T8b949e<!-- Mode toggle -->
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"mode-toggle"Tb4b4b4>
Tb4b4b4<Tff7b72button Te6edf3classTff7b72=Ta5d6ff"mode-btn active" Te6edf3idTff7b72=Ta5d6ff"mode-update"Tb4b4b4>
Update firmware
Tb4b4b4<Tff7b72span Te6edf3classTff7b72=Ta5d6ff"mode-sub"Tb4b4b4>App only Te6edf3— settings preservedTb4b4b4<Tb4b4b4/Tff7b72spanTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72buttonTb4b4b4>
Tb4b4b4<Tff7b72button Te6edf3classTff7b72=Ta5d6ff"mode-btn" Te6edf3idTff7b72=Ta5d6ff"mode-full"Tb4b4b4>
First-time install
Tb4b4b4<Tff7b72span Te6edf3classTff7b72=Ta5d6ff"mode-sub"Tb4b4b4>Full flash Te6edf3— clears all settingsTb4b4b4<Tb4b4b4/Tff7b72spanTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72buttonTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72p Te6edf3idTff7b72=Ta5d6ff"flash-desc"Tb4b4b4>
Writes only the application region (0x10000).
Bootloader, partition table, and all saved settings (LoRa config, identity, WiFi) are left untouched.
Use this when your device already has RTNode firmware installed.
Tb4b4b4<Tb4b4b4/Tff7b72pTb4b4b4>
Tb4b4b4<Tff7b72esp-web-install-button Te6edf3idTff7b72=Ta5d6ff"install-btn" Te6edf3manifestTff7b72=Ta5d6ff"manifest-v3.json"Tb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72esp-web-install-buttonTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"selected-board"Tb4b4b4>
Selected: Tb4b4b4<Tff7b72span Te6edf3idTff7b72=Ta5d6ff"selected-name"Tb4b4b4>Heltec V3Tb4b4b4<Tb4b4b4/Tff7b72spanTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72sectionTb4b4b4>
T8b949e<!-- Requirements -->
Tb4b4b4<Tff7b72section Te6edf3classTff7b72=Ta5d6ff"step"Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"step-label"Tb4b4b4>RequirementsTb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72ul Te6edf3classTff7b72=Ta5d6ff"req-list"Tb4b4b4>
Tb4b4b4<Tff7b72liTb4b4b4>
Tb4b4b4<Tff7b72span Te6edf3classTff7b72=Ta5d6ff"icon ok"Tb4b4b4>Te6edf3✓Tb4b4b4<Tb4b4b4/Tff7b72spanTb4b4b4>
Tb4b4b4<Tff7b72spanTb4b4b4>Google Chrome 89+ or Microsoft Edge Te6edf3— Web Serial API required
(Firefox and Safari are not supported)Tb4b4b4<Tb4b4b4/Tff7b72spanTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72liTb4b4b4>
Tb4b4b4<Tff7b72liTb4b4b4>
Tb4b4b4<Tff7b72span Te6edf3classTff7b72=Ta5d6ff"icon ok"Tb4b4b4>Te6edf3✓Tb4b4b4<Tb4b4b4/Tff7b72spanTb4b4b4>
Tb4b4b4<Tff7b72spanTb4b4b4>USB cable connected to your RTNode deviceTb4b4b4<Tb4b4b4/Tff7b72spanTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72liTb4b4b4>
Tb4b4b4<Tff7b72liTb4b4b4>
Tb4b4b4<Tff7b72span Te6edf3classTff7b72=Ta5d6ff"icon ok"Tb4b4b4>Te6edf3✓Tb4b4b4<Tb4b4b4/Tff7b72spanTb4b4b4>
Tb4b4b4<Tff7b72spanTb4b4b4>No Python, esptool, or PlatformIO installation neededTb4b4b4<Tb4b4b4/Tff7b72spanTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72liTb4b4b4>
Tb4b4b4<Tff7b72liTb4b4b4>
Tb4b4b4<Tff7b72span Te6edf3classTff7b72=Ta5d6ff"icon warn"Tb4b4b4>Te6edf3⚠Tb4b4b4<Tb4b4b4/Tff7b72spanTb4b4b4>
Tb4b4b4<Tff7b72spanTb4b4b4>On Linux, you may need to add your user to the Tb4b4b4<Tff7b72codeTb4b4b4>dialoutTb4b4b4<Tb4b4b4/Tff7b72codeTb4b4b4>
group: Tb4b4b4<Tff7b72codeTb4b4b4>sudo usermod -a -G dialout $USERTb4b4b4<Tb4b4b4/Tff7b72codeTb4b4b4> (then log out and
back in)Tb4b4b4<Tb4b4b4/Tff7b72spanTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72liTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72ulTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72sectionTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72mainTb4b4b4>
Tb4b4b4<Tff7b72footerTb4b4b4>
Tb4b4b4<Tff7b72pTb4b4b4>
RTNode Firmware Te6edf3—
Tb4b4b4<Tff7b72a Te6edf3hrefTff7b72=Ta5d6ff"https://github.com/jrl290/RTNode-HeltecV4" Te6edf3targetTff7b72=Ta5d6ff"_blank" Te6edf3relTff7b72=Ta5d6ff"noopener"Tb4b4b4>
GitHub
Tb4b4b4<Tb4b4b4/Tff7b72aTb4b4b4>
Te6edf3·
Powered by
Tb4b4b4<Tff7b72a Te6edf3hrefTff7b72=Ta5d6ff"https://esphome.github.io/esp-web-tools/" Te6edf3targetTff7b72=Ta5d6ff"_blank" Te6edf3relTff7b72=Ta5d6ff"noopener"Tb4b4b4>
ESP Web Tools
Tb4b4b4<Tb4b4b4/Tff7b72aTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72pTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72footerTb4b4b4>
Tb4b4b4<Tff7b72scriptTb4b4b4>
Tff7b72const Te6edf3installBtn Tff7b72= Tffa657documentTb4b4b4.Te6edf3getElementByIdTb4b4b4(Ta5d6ff'install-btn'Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3selectedLbl Tff7b72= Tffa657documentTb4b4b4.Te6edf3getElementByIdTb4b4b4(Ta5d6ff'selected-name'Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3flashDesc Tff7b72= Tffa657documentTb4b4b4.Te6edf3getElementByIdTb4b4b4(Ta5d6ff'flash-desc'Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3modeUpdate Tff7b72= Tffa657documentTb4b4b4.Te6edf3getElementByIdTb4b4b4(Ta5d6ff'mode-update'Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3modeFull Tff7b72= Tffa657documentTb4b4b4.Te6edf3getElementByIdTb4b4b4(Ta5d6ff'mode-full'Tb4b4b4)Tb4b4b4;
T8b949e// Board → {update manifest, full manifest}
Tff7b72const Te6edf3BOARDS Tff7b72= Tb4b4b4{
Ta5d6ff'manifest-v3.json'Tff7b72: Tb4b4b4{ Te6edf3updateTff7b72: Ta5d6ff'manifest-v3.json'Tb4b4b4, Te6edf3fullTff7b72: Ta5d6ff'manifest-v3-full.json' Tb4b4b4}Tb4b4b4,
Ta5d6ff'manifest-v4-16mb.json'Tff7b72: Tb4b4b4{ Te6edf3updateTff7b72: Ta5d6ff'manifest-v4-16mb.json'Tb4b4b4, Te6edf3fullTff7b72: Ta5d6ff'manifest-v4-full.json' Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4;
Tff7b72let Te6edf3currentBoard Tff7b72= Ta5d6ff'manifest-v3.json'Tb4b4b4;
Tff7b72let Te6edf3currentIsUpdate Tff7b72= Tff7b72trueTb4b4b4;
Tff7b72const Te6edf3UPDATE_DESC Tff7b72= Ta5d6ff"Writes only the application region (0x10000). " Tff7b72+
Ta5d6ff"Bootloader, partition table, and all saved settings (LoRa config, identity, WiFi) are left untouched. " Tff7b72+
Ta5d6ff"Use this when your device already has RTNode firmware installed."Tb4b4b4;
Tff7b72const Te6edf3FULL_DESC Tff7b72= Ta5d6ff"\u26A0\uFE0F Writes the full image from offset 0x0, replacing bootloader, partition table, and app. " Tff7b72+
Ta5d6ff"All existing settings will be erased. " Tff7b72+
Ta5d6ff"Required when: the device is blank, has mismatched partition layout, or has no app installed."Tb4b4b4;
Tff7b72function Te6edf3updateButtonTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3manifests Tff7b72= Te6edf3BOARDSTb4b4b4[Te6edf3currentBoardTb4b4b4]Tb4b4b4;
Te6edf3installBtnTb4b4b4.Te6edf3setAttributeTb4b4b4(Ta5d6ff'manifest'Tb4b4b4, Te6edf3currentIsUpdate Tff7b72? Te6edf3manifestsTb4b4b4.Te6edf3update Tff7b72: Te6edf3manifestsTb4b4b4.Te6edf3fullTb4b4b4)Tb4b4b4;
Te6edf3flashDescTb4b4b4.Te6edf3textContent Tff7b72= Te6edf3currentIsUpdate Tff7b72? Te6edf3UPDATE_DESC Tff7b72: Te6edf3FULL_DESCTb4b4b4;
Tb4b4b4}
Tffa657documentTb4b4b4.Te6edf3querySelectorAllTb4b4b4(Ta5d6ff'.board-btn'Tb4b4b4)Tb4b4b4.Te6edf3forEachTb4b4b4(Te6edf3btn Tb4b4b4=> Tb4b4b4{
Te6edf3btnTb4b4b4.Te6edf3addEventListenerTb4b4b4(Ta5d6ff'click'Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tffa657documentTb4b4b4.Te6edf3querySelectorAllTb4b4b4(Ta5d6ff'.board-btn'Tb4b4b4)Tb4b4b4.Te6edf3forEachTb4b4b4(Te6edf3b Tb4b4b4=> Te6edf3bTb4b4b4.Te6edf3classListTb4b4b4.Te6edf3removeTb4b4b4(Ta5d6ff'active'Tb4b4b4)Tb4b4b4)Tb4b4b4;
Te6edf3btnTb4b4b4.Te6edf3classListTb4b4b4.Te6edf3addTb4b4b4(Ta5d6ff'active'Tb4b4b4)Tb4b4b4;
Te6edf3currentBoard Tff7b72= Te6edf3btnTb4b4b4.Te6edf3datasetTb4b4b4.Te6edf3manifestTb4b4b4;
Te6edf3selectedLblTb4b4b4.Te6edf3textContent Tff7b72= Te6edf3btnTb4b4b4.Te6edf3datasetTb4b4b4.Te6edf3nameTb4b4b4;
Te6edf3updateButtonTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3modeUpdateTb4b4b4.Te6edf3addEventListenerTb4b4b4(Ta5d6ff'click'Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Te6edf3modeUpdateTb4b4b4.Te6edf3classListTb4b4b4.Te6edf3addTb4b4b4(Ta5d6ff'active'Tb4b4b4)Tb4b4b4;
Te6edf3modeFullTb4b4b4.Te6edf3classListTb4b4b4.Te6edf3removeTb4b4b4(Ta5d6ff'active'Tb4b4b4)Tb4b4b4;
Te6edf3currentIsUpdate Tff7b72= Tff7b72trueTb4b4b4;
Te6edf3updateButtonTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3modeFullTb4b4b4.Te6edf3addEventListenerTb4b4b4(Ta5d6ff'click'Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Te6edf3modeFullTb4b4b4.Te6edf3classListTb4b4b4.Te6edf3addTb4b4b4(Ta5d6ff'active'Tb4b4b4)Tb4b4b4;
Te6edf3modeUpdateTb4b4b4.Te6edf3classListTb4b4b4.Te6edf3removeTb4b4b4(Ta5d6ff'active'Tb4b4b4)Tb4b4b4;
Te6edf3currentIsUpdate Tff7b72= Tff7b72falseTb4b4b4;
Te6edf3updateButtonTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4<Tb4b4b4/Tff7b72scriptTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72bodyTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72htmlTb4b4b4>
Served by rngit 1.4.2 - Generated in 0.03s